Protocal Buffers for iOS的安装及使用(使用篇)

使用

下载源码

  • 1.从https://github.com/google/protobuf.git下载源码,解压,里面有支持不同语言的版本源码,我们只需要里面的支持objc的文件夹名为:objectivec

    1-1

  • 2.新建一个工程命名为ProtocolBufferTest,创建一个文件夹,假设命名为:protocolbuf, 把第一步的pb源码复制到此文件夹中:

    2-1

  • 3.使用Xcode打开工程,点击左下角+, 引用protocolBuffer源文件到工程中
    (源文件里面有两个工程配置文件:ProtocolBuffers_iOS.xcodeprojProtocolBuffers_OSX.xcodeproj,引用ProtocolBuffers_iOS.xcodeproj就好)

    3-1
    3-2

  • 4.选中工程: targets—>Build Phases—>Link Binary With Libraries, 引用源码静态库文件:libProtocolBuffers.a

    4-1

  • 5.在工程设置搜索静态库的头文件(pb文件在protocolbuf文件夹里面):
    targets—>Build Setting—>Search Paths—>Header Search Paths, 写入:$(PROJECT)/protocolbuf

    5-1

  • 6.编写测试文件*.proto,比如新建一个文件Person.proto, 按照官方标准语法https://developers.google.com/protocol-buffers/ 编写通用代码,写好后在终端进入该Person.proto文件所在目录,使用protoc命令:protoc *.proto --objc_out=../Pro_out 进行编译。把Person.proto文件编译成Person.pbobjc.hPerson.pbobjc.m, 生成的文件在Pro_out文件夹里面。如果Person.proto源文件有语法问题,编译时会报错;当编译时什么提示都没有,表示编译成功:将编译好的*.pbobjc.h*.pbobjc.m拖入工程中,因为不支持arc, 所以需要在*.pbobjc.m设置-fno-objc-arc, 然后就可以使用了

    6-1
    6-2
    6-3
    6-4

  • 7.序列化与反序列化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Person *p = [[Person alloc] init];
p.name = @"xiao";
p.age = 2;
p.address = @"哈哈哈";
NSLog(@"name:%@, age:%zi, address:%@", p.name, p.age, p.address);

// 序列化
NSData *data = [p data];
NSLog(@"data:%@", data);

// 反序列化
NSError *error;
Person *per = [Person parseFromData:data error:&error];
if (!error) {
NSLog(@"_____name:%@, age:%zi, address:%@_____", per.name, per.age, per.address);
}
文章作者: 落秋
文章链接: https://www.liyb.vip/2018/11/27/Protocal Buffers for iOS的安装及使用(使用篇)/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 落秋
打赏
  • 微信
  • 支付宝

评论